#!/bin/bash

# 设置输出文件名（使用时间戳来命名）
output_file="network_info_$(date +%Y%m%d_%H%M%S).txt"

# 将所有输出重定向到文件
{
    echo "================物理网卡信息=================="
    echo "生成时间: $(date '+%Y-%m-%d %H:%M:%S')"
    echo

    # 获取物理网卡列表
    physical_interfaces=$(ls -l /sys/class/net/ | grep -v virtual | grep devices | awk -F"/" '{print $NF}')

    # IP地址
    echo "---IP地址---"
    for interface in $physical_interfaces; do
        ip_addr=$(ip -4 addr show $interface 2>/dev/null | grep inet | awk '{print $2}')
        if [ ! -z "$ip_addr" ]; then
            echo "接口: $interface  IP: $ip_addr"
        fi
    done
    echo

    # MAC地址
    echo "---MAC地址---"
    for interface in $physical_interfaces; do
        mac=$(ip link show $interface | grep 'link/ether' | awk '{print $2}')
        if [ ! -z "$mac" ]; then
            echo "接口: $interface  MAC: $mac"
        fi
    done
    echo

    echo "==================完成======================="
} > "$output_file"

# 同时在屏幕上显示结果
cat "$output_file"

echo -e "\n网络信息已保存到文件: $output_file"